package com.src.computec.radarplus.gestionimagenes.base.constantes;

import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

/**
 *
 * @author Jose Luis Perea
 */

public class ConstantesGenerales {
    
    protected static ConstantesGenerales instance;
    
    public static String FACTORYDAO_CLASSNAME;
    public static String SCHEMA;
    
    public static String MAX_IMAGESTOCOPY; 
    public static String MAX_TRIES_TO_COPY;
    public static String DAYS_LEFT;
    
    public static String STATE_TO_COPY;
    public static String STATE_SUCCESS_COPY;
    public static String STATE_NOT_IN_RADAR;
    public static String STATE_INCONSISTENCIA_ESPECIAL;   
    
    public static String ENTREGA_NORMAL_SQL;  
    public static String ENTREGA_BAJOPUERTA_SQL;  
    
    public static String ENTREGA_NORMAL_DB2;  
    public static String ENTREGA_BAJOPUERTA_DB2;     
    public static String DISTRIBUCION_DB2;    
    public static List GESTIONES_DEVOLUCION_DB2 = new ArrayList(); 
    public static List GESTIONES_ESPECIALES_DB2 = new ArrayList();
    
    public static String PATH_ORIGEN;
    public static String PATH_DESTINO;
    public static String SEPARATOR;
    public static String EXTENSION;
    
    public static int SLEEP_LONG_TIME; 
    public static int RANGE_IMAGES_BETWEEN; 
    
    public static String CODIGO_GESTION_REENVIO;
    
    protected ConstantesGenerales() {       
        ResourceBundle rb = ResourceBundle.getBundle("GestionImagenesPlusSetup");
        
        this.FACTORYDAO_CLASSNAME   = rb.getString("DaoFactoryClassName");  
        this.SCHEMA                 = rb.getString("schema");  
        
        this.MAX_IMAGESTOCOPY       = rb.getString("MaxImagesToCopy"); 
        this.MAX_TRIES_TO_COPY      = rb.getString("MaxTriesToCopy"); 
        this.DAYS_LEFT              = rb.getString("DaysLeft"); 
        
        this.STATE_TO_COPY                  = rb.getString("StateToCopy");  
        this.STATE_SUCCESS_COPY             = rb.getString("StateSuccessCopy"); 
        this.STATE_NOT_IN_RADAR             = rb.getString("StateNotInRadar");    
        this.STATE_INCONSISTENCIA_ESPECIAL  = rb.getString("StateInconsistenciaEspecial");     
        
        this.ENTREGA_BAJOPUERTA_SQL = rb.getString("IdEntregaBajoPuertaSQL"); 
        this.ENTREGA_NORMAL_SQL     = rb.getString("IdEntregaNormalSQL"); 
        
        this.ENTREGA_BAJOPUERTA_DB2 = rb.getString("IdEntregaBajoPuertaDB2"); 
        this.ENTREGA_NORMAL_DB2     = rb.getString("IdEntregaNormalDB2");
        this.DISTRIBUCION_DB2       = rb.getString("IdDistribucionNormalDB2");   
        
        //Esto es para tener los ids de devolucion en una lista
        String[] idsDevolucion = rb.getString("IdsGestionDevolucion").split(",");        
        for(int i = 0; i < idsDevolucion.length; i++)
        {
            this.GESTIONES_DEVOLUCION_DB2.add(idsDevolucion[i]);
        }
        
        //Esto es para tener los ids de devolucion en una lista
        String[] idsEspeciales = rb.getString("IdsGestionEspeciales").split(",");        
        for(int i = 0; i < idsEspeciales.length; i++)
        {
            this.GESTIONES_ESPECIALES_DB2.add(idsEspeciales[i]);
        }
        
        this.PATH_ORIGEN    = rb.getString("PathOrigen"); 
        this.PATH_DESTINO   = rb.getString("PathDestino"); 
        this.SEPARATOR      = rb.getString("Separator"); 
        this.EXTENSION      = rb.getString("Extension"); 
        
        this.SLEEP_LONG_TIME    = Integer.parseInt(rb.getString("SleepLongTimeThread"));     
        this.RANGE_IMAGES_BETWEEN = Integer.parseInt(rb.getString("RangeImagesBetween"));   
        
        this.CODIGO_GESTION_REENVIO = rb.getString("codigoGestionReenvio"); 
    }
    
    public static ConstantesGenerales getInstance() {
        if (instance == null) {
            instance = new ConstantesGenerales();
        }
        return instance;
    }
}